Data service tracker module for a communication system and method of determining a set of data couplings

ABSTRACT

A data service tracker module and a method of determining a set of data couplings in a communication system, includes receiving a transaction communication from a communication mechanism the transaction communication defining access between a transaction source and a transaction destination, and recording the transaction communication data defining the data coupling, to define a set of data couplings authorized for transaction communications in the communication system.

TECHNICAL FIELD

The disclosure relates to a method and apparatus for determining a setof data couplings between communication transaction pairs, andspecifically, for determining a set of data couplings in response to thecommunication transactions.

BACKGROUND

For contemporary aircraft, an avionics ‘platform’ consists of a varietyof elements such as sensors, sensor data concentrators, a datacommunications network, radio frequency sensors and communicationequipment, computational elements, effectors, and graphical displays.These components must share information with each other over the datacommunications network. In these systems, data is sampled, published,and transmitted between publishers (e.g. data writers) and subscribers(e.g. data subscribers).

BRIEF DESCRIPTION

In one aspect, the present disclosure relates to a data service trackermodule for a communications system, including an interface with acommunication mechanism operable to receive transaction communicationdata between a transaction source and a transaction destination, and acontroller module, configured to receive the transaction communicationdata, identify transaction communication aspects of the transactioncommunication data, including at least the transaction source and thetransaction destination, and to build a set of data couplings of thecommunications system, each data coupling defining the transactionsource and the transaction destination.

In another aspect, the present disclosure relates to a communicationsystem, including a shared memory defining at least one data store, aprocess having access to the at least one data store by way of acommunication mechanism, a data service tracker module communicativelyconnected with the communication mechanism, and configured to identifyaccess between the at least one data store and the process, by way ofthe communication mechanism, and to record transaction communicationdata related to the access, including at least an access initiator andan access type, to build a set of data couplings between the sharedmemory and the process.

In yet another aspect, the present disclosure relates to a method ofdetermining a set of data couplings in a communication system, themethod including receiving, in real-time, by a data service trackermodule, a transaction communication, from a communication mechanism, thetransaction communication defining access between a transaction sourceand a transaction destination, identifying aspects of the transactioncommunication, by the data service tracker module, to define transactioncommunication data defining a data coupling between the transactionsource and the transaction destination, and recording the transactioncommunication data defining the data coupling, by the data servicetracker module, to define a set of data couplings authorized fortransaction communications in the communication system.

These and other features, aspects and advantages of the presentdisclosure will become better understood with reference to the followingdescription and appended claims. The accompanying drawings, which areincorporated in and constitute a part of this specification, illustrateaspects of the disclosure and, together with the description, serve toexplain the principles of the disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

A full and enabling disclosure of the present description, including thebest mode thereof, directed to one of ordinary skill in the art, is setforth in the specification, which makes reference to the appended FIGS.,in which:

FIG. 1 is a top down schematic view of the aircraft and communicationsnetwork in accordance with various aspects described herein.

FIG. 2 is a schematic view of a communication system having a set ofprocesses and a shared memory, in accordance with various aspectsdescribed herein.

FIG. 3 is a schematic view of communication within a system having a setof processes and a shared memory, in accordance with various aspectsdescribed herein.

FIG. 4 is an example flow chart diagram of demonstrating a method ofdetermining a set of data couplings, in accordance with various aspectsdescribed herein.

DETAILED DESCRIPTION

Aspects of the disclosure are illustrated in the environment of aircrafthaving a data network interconnecting common or shared memory accessibleto a plurality of sensors, systems, and components of the aircraft.However, aspects of the disclosure can be implemented in any environmentusing readers and writers of the data accessing or access by way of thecommon or shared memory, including within a single system, partition,operable component, line replaceable unit (LRU), or the like. As usedherein, terms like “reader,” “writer,” or “client” can denote a remoterelationship with the shared memory or data store (e.g. anotherseparated entity), while a “server” can denote a like relationship withthe shared memory or data store. Furthermore, a “reader” entity of theshared memory can denote an entity that has “access” to the sharedmemory data to read, view, or otherwise receiving data from a sharedmemory data store. In contrast to a “reader,” a “writer” entity caninclude availability or authorization to commit a change to a memorylocation, the change being storing or overwriting data, values,commands, instructions, or any other data, element, or identifier to amemory location, regardless of the function performed by the data,element, or identifier, or regardless of the function or implementationof the environment, apparatus, system, or method. In one non-limitingexample, the authorization to edit the data for a writer entity can belimited only to a particular subset of the shared memory. In anothernon-limiting example, a single entity can have both “reader” or “read”access to a first subset of shared memory data, and have “writer” or“write” access to a second subset of shared memory data. In yet anothernon-limiting example, a single entity can have overlapping “read” or“write” access to shared memory data.

As used herein, a “regulated” system is a system having restrictions onaccess, such as write-access to data or values of the system, wherebyonly approved or authorized entities, parties, functions, or the like,are enabled or otherwise allowed to access the regulated or restrictedelements. In one non-limiting example, only a single authorized functioncan have write access to a specific data element.

While “a set of” various elements will be described, it will beunderstood that “a set” can include any number of the respectiveelements, including only one element. Also, as used herein, whilesensors can be described as “sensing” or “measuring” a respective value,sensing or measuring can include determining a value indicative of orrelated to the respective value, rather than directly sensing ormeasuring the value itself. The sensed or measured values can further beprovided to additional components. For instance, the value can beprovided to a controller module or processor, and the controller moduleor processor can perform processing on the value to determine arepresentative value or an electrical characteristic representative ofsaid value.

Connection references (e.g., attached, coupled, connected, and joined)are to be construed broadly and can include intermediate members betweena collection of elements and relative movement between elements unlessotherwise indicated. In certain communicative instances, connectionreferences can be construed to describe entities or elements that arecommunicatively connected, including by way of intermediarycommunications or communicative mediums. Communicative instance caninclude, but are not limited to, software module interaction, read andwrite access of memory data, or the like. As such, connection referencesdo not necessarily infer that two elements are directly connected and infixed relation to each other. In non-limiting examples, connections ordisconnections can be selectively configured to provide, enable,disable, or the like, an electrical connection between respectiveelements. Non-limiting example power distribution bus connections ordisconnections can be enabled or operated by way of switching, bus tielogic, or any other connectors configured to enable or disable theenergizing of electrical loads downstream of the bus. Additionally, asused herein, “electrical connection” or “electrically coupled” caninclude a wired or wireless connection. The exemplary drawings are forpurposes of illustration only and the dimensions, positions, order andrelative sizes reflected in the drawings attached hereto can vary.

Additionally, as used herein, a “controller” or “controller module” caninclude a component configured or adapted to provide instruction,control, operation, or any form of communication for operable componentsto effect the operation thereof. A controller module can include anyknown processor, microcontroller, or logic device, including, but notlimited to: field programmable gate arrays (FPGA), an applicationspecific integrated circuit (ASIC), a full authority digital enginecontrol (FADEC), a proportional controller (P), a proportional integralcontroller (PI), a proportional derivative controller (PD), aproportional integral derivative controller (PID controller), ahardware-accelerated logic controller (e.g. for encoding, decoding,transcoding, etc.), the like, or a combination thereof. Non-limitingexamples of a controller module can be configured or adapted to run,operate, or otherwise execute program code to effect operational orfunctional outcomes, including carrying out various methods,functionality, processing tasks, calculations, comparisons, sensing ormeasuring of values, or the like, to enable or achieve the technicaloperations or operations described herein. The operation or functionaloutcomes can be based on one or more inputs, stored data values, sensedor measured values, true or false indications, or the like. While“program code” is described, non-limiting examples of operable orexecutable instruction sets can include routines, programs, objects,components, data structures, algorithms, etc., that have the technicaleffect of performing particular tasks or implement particular abstractdata types. In another non-limiting example, a controller module canalso include a data storage component accessible by the processor,including memory, whether transient, volatile or non-transient, ornon-volatile memory.

Additional non-limiting examples of the memory can include Random AccessMemory (RAM), Read-Only Memory (ROM), flash memory, or one or moredifferent types of portable electronic memory, such as discs, DVDs,CD-ROMs, flash drives, universal serial bus (USB) drives, the like, orany suitable combination of these types of memory. In one example, theprogram code can be stored within the memory in a machine-readableformat accessible by the processor. Additionally, the memory can storevarious data, data types, sensed or measured data values, inputs,generated or processed data, or the like, accessible by the processor inproviding instruction, control, or operation to effect a functional oroperable outcome, as described herein. In another non-limiting example,a control module can include comparing a first value with a secondvalue, and operating or controlling operations of additional componentsbased on the satisfying of that comparison. For example, when a sensed,measured, or provided value is compared with another value, including astored or predetermined value, the satisfaction of that comparison canresult in actions, functions, or operations controllable by thecontroller module. As used, the term “satisfies” or “satisfaction” ofthe comparison is used herein to mean that the first value satisfies thesecond value, such as being equal to or less than the second value, orbeing within the value range of the second value. It will be understoodthat such a determination may easily be altered to be satisfied by apositive/negative comparison or a true/false comparison. Examplecomparisons can include comparing a sensed or measured value to athreshold value or threshold value range.

As used herein, a “data store” can include a data value stored in amemory, wherein the data value is only write-accessible by one or morefunctions, programs, processes, entities, or the like (a “writer”). Thewrite-accessibility of the data store can be policed or otherwiseregulated by digital security mechanisms understood by those skilled inthe art. While only limited subset of writers has write-access to thedata store, a data store can have or include multiple function, program,processes, or entities having read-access to read, view, or otherwisereceive the data in a unidirectional relationship. In contrast with thedata store, a “data store queue” can include a data value or set of datavalues stored in a memory, wherein the data value is write-accessible bya set of one or more functions, programs, entities, or the like. Thewrite-accessibility of the data store queue can be policed or otherwiseregulated by digital security mechanisms understood by those skilled inthe art. Additionally, a data store queue can include only a singlefunction, program, or entity having read-access to read, view, orotherwise receive the data in a unidirectional relationship. Innon-limiting examples, this read operation can be “one-time” ordestructive (e.g. removing the data after the access operation).

Reference now will be made in detail to aspects of the disclosure, oneor more non-limiting examples of which are illustrated in the Figures.Each example is provided by way of explanation of the disclosure, notlimitation of the disclosure. In fact, it will be apparent to thoseskilled in the art that various modifications and variations can be madein the present disclosure without departing from the scope or spirit ofthe disclosure. Thus, it is intended that the present disclosure coverssuch modifications and variations as come within the scope of theappended claims and their equivalents.

Although example aspects of the present disclosure are discussed withreference to avionics systems, the subject matter described herein canbe used with or applied to internal data of other systems, vehicles,machines, industrial or mechanical assets, or components withoutdeviating from the scope of the present disclosure.

The exemplary drawings are for purposes of illustration only and thedimensions, positions, order and relative sizes reflected in thedrawings attached hereto can vary.

Referring now to FIG. 1, an example aircraft 10 is shown having afuselage and at least one turbine engine, shown as a left engine system12 and a right engine system 14. The left and right engine systems 12,14 may be substantially identical. While turbine engines 12, 14 areillustrated, the aircraft 10 may include fewer or additional enginesystems, or alternative propulsion engine systems, such aspropeller-based engines.

The aircraft 10 is shown further comprising a plurality of sensors,systems, and components, collectively referred to as Line-ReplaceableUnits (LRUs) 16, 18, and at least one server 20 or computing unit, shownas two flight management systems, or flight control computers, locatedproximate to each other, near the nose of the aircraft 10. At least oneof the servers 20 may further include memory.

The LRUs 16, 18 and servers 20 may be communicatively interconnected bytransmission or communication lines defining a data communicationmechanism, such as a communications network 22, traversing at least aportion of the aircraft 10. Additional LRUs 16, 18 can be included.While a server 20 is described, aspects of the disclosure can includeany computing system, flight computer, or display system displaying datafrom multiple systems.

The memory of the servers 20 can include Random Access Memory (RAM),flash memory, or one or more different types of portable electronicmemory, etc., or any suitable combination of these types of memory. TheLRUs 16, 18 or servers 20 may be operably coupled with the memory suchthat the LRUs 16, 18 or servers 20, or any computer programs orprocesses thereon, may access at least a portion of the memory (e.g.“shared memory”).

The aircraft 10 shown in FIG. 1 is merely a schematic representation ofone non-limiting example environment of the disclosure, and used toillustrate that a plurality of LRUs 16, 18 and servers 20 may be locatedthroughout the aircraft 10. The exact location of the LRUs 16, 18 andservers 20 are not germane to the aspects of the disclosure.Additionally, more or fewer LRUs 16, 18 or servers 20 may be included inaspects of the disclosure.

The communications network 22 is illustrated schematically as a bus, butmay include a number of data communication connectors and interfaces,for example, Ethernet or fiber optic cables, and routing or switchingcomponents, to facilitate the communicative interconnection between theLRUs 16, 18 and servers 20. Furthermore, the configuration and operationof the communications network 22 may be defined by a common set ofstandards or regulations applicable to particular aircraft environments.For example, the communications network 22 on an aircraft 10 may bedefined by, or configured according to, the ARINC 664 (A664) standard,ARINC 429 (A429) standard, or ARINC 653 (A653) standard.

FIG. 2 illustrates a schematic view of a communication system 30 havinga set of processes 32 and a shared memory 34, in accordance with variousaspects described herein. While a set of processes 32 is shown, the setof processes 32 can include independent data network entities, includingbut not limited to the LRUs 16, 18. Additionally, the set of processes32 can include readers entities or processes, writer entities orprocesses, or a reader and writer entity or process (i.e. a“reader/writer”). The shared memory 34 can include a set of data stores36, each designated, assigned, or otherwise accounted for storing aparticular set of data or data value(s). The shared memory 34 canfurther include a validation module 38 operably configured to regulateread access, write access, or a combination thereof, to the set of datastores 36. Aspects of the validation module 38 can include authorizingor otherwise validating “authorized” access based on predeterminedauthorization lists or “approved” entities for particular access,cryptographically secured access (e.g. access enable by or authorized byway of codes, digital signatures, or the like), or another mechanismunderstood by one skilled in the art. In contrast, to “authorized”access or transactions, “unauthorized” access or transactions caninclude transaction requests that are denied, not committed to memory,or otherwise not validated by the validation module 38, and whosetransaction requests are not carried out by the communication system 30.While a shared memory 34 is shown, the shared memory 34 can includeindependent data network entities, including but not limited to theserver 20.

The set of processes 32 can be communicatively connected with the sharedmemory 34 of the communication system 30 by way of a network interface40, including but not limited to the communications network 22.Non-limiting aspects of the network interface 40 can include a networkmesh, wired or wireless communication interfaces, communicative signalconductors (such as the transmission lines of the communications network22), network switches, data routers or routing mechanisms, or the like.

The communications system 30 is further shown including a data servicetracker module 42. The data service tracker module 42 can furtherinclude memory, shown as a first memory 44 and a second memory 46. Asshown, the data service tracker module 42 can be optionallycommunicatively connected with at least one of, or both of, the sharedmemory 34 and the network interface 40. For example, the set ofprocesses 32 can include a first process 48 or LRU 16, 18, such as anairspeed sensor, a second process 50 or LRU 16, 18, such as an avionicsflight computer, and a third process 52 or LRU 16, 18, such as anavigational component. Similarly, in one non-limiting example, theshared memory 34 can include a first data store 54 representative of anairspeed value stored in a predetermined memory location of the sharedmemory, a second data store 56, and a third data store 58.

During operation of the communication system 30, the aircraft 10, or thelike, the first process 48 or airspeed sensor can sense or measure anairspeed. In response to sensing the airspeed, the first process 48 canbe controllably operated to transmit, communicate, or otherwise conveythe airspeed, or a value representative of the airspeed, to apredetermined memory storage location of the shared memory 34, such asthe first data store 54, for storing the sensed airspeed value. Thesensed airspeed value can be communicated by way of the networkinterface 40 or communications network 22 to the shared memory, where,for example, the validation module 38 ensures, approves, or otherwisevalidates that the first process 48 is authorized to write or commit thesensed airspeed value to the first data store 54. In anothernon-limiting example, the validation module 38 can be communicativelyconnected with the data service tracker module 42, for example by way ofan interface, and can determine whether the desired transactioncommunication is determined to be authorized or unauthorized, and canreport that determination to the data service tracker module 42.

In another instance of the communication system 30, the second process50, such as the avionics flight computer can read, request, or otherwisedemand the sensed airspeed value stored in the first data store 54. Forinstance, the second process 50, can actively request read access of thedata stored in the first data store 54, and the read access of theshared memory 34 by the second process 50 can be validated or otherwiseconfirmed by the validation module 38. In this instance, both therequest and the resulting communication of the data stored in the firstdata store 54 can be delivered from or to the second process 50 by wayof the network interface 40 or the communications network 22.

In another non-limiting example, the second process 50 alternatively oradditionally receive the data stored in the first data store 54 by wayof an unprompted or “triggerless” communication, just as a communicationbased on a schedule, periodic transmissions, or the like. In this sense,the second process 50 can still receive access to the data of the firstdata store 54, such as read-access, but without having to make a“request” for the data. Furthermore, aspects of the disclosure can beincluded wherein the second process 50 can further be enabled orauthorized to return a data value related to the airspeed (i.e. a seconddata value), or a derivative thereof, and save that second data value tothe first data store 54, or another data store 56, 58, in accordancewith authorizing storing values, as described herein. In this sense, thesecond process 50 can be adapted or configured for both read access andwrite access to the same, or different data stores 54, 56, 58 of theshared memory 34.

Aspects of the communications system 30 can be included wherein the dataservice tracker module 42 is configured, adapted, or otherwise operablyenabled to identify, track, manage, or associate connections,communications, to data access between entities accessing the sharedmemory 34, including, but not limited to the set of processes 32. Forinstance, the data service tracker module 42 can be communicativelyconnected with either of, or both of, the network interface 40 or theshared memory 34. When a communication, a request, a demand, or atransaction for accessing (e.g. either reading or writing to) the sharedmemory 34 is communicated, the data service tracker module 42 canreceive, record, or otherwise log aspects of the communication.

Aspects of the transaction communication can further include identifyingaspects of data thereof, including, but not limited to, the sendingsource or transaction source (e.g. one of the set of processes 32, or insome instances, the shared memory 34, if initiating sending data storedata to the set of processes 32), the destination receiver ortransaction destination (e.g. the shared memory 34, or a particularshared memory 34 or server 20 in a group of shared memories 34 orservers 20, or in some instances, the set of processes 32), or even theparticular memory being accessed (e.g. which of the one or more of theset of data stores 36). These aspects of the transaction communicationcan include, but not limited to, transaction communication data, or datarelated to the transaction communication, itself. The data servicetracker module 42 can be adapted or configured to identify aspects ofthe transaction communication by receiving and interpreting, utilizing,parsing, or otherwise identifying subportions of the communicationitself, such as network addresses, data header information, frameinformation, payload information, or the like. In another non-limitingexample, the data service tracker module 42 can be adapted or configuredto further identify timing-based aspects of the transactioncommunication, such as timestamps, or the like. In one non-limitinginstance, the data service tracker module 42 can be adapted orconfigured to perform the actions described herein by way of acontroller module (not shown). This example can include originationtiming aspects, destination timing aspects, response timing aspects, ora combination thereof. Non-limiting aspects of the timing, such as atimestamp, can be based upon the transaction communication itself (e.g.a timestamp in the communication data header), or based on anindependent clock residing or otherwise originating at the data servicetracker module 42. In this non-limiting example, the set of datacouplings can further include the timestamp of the transactioncommunication data.

In one non-limiting aspect, at least a portion of the transactioncommunication can be received by way of an optional connection with thenetwork interface 40, such at each transaction communication traversingthe network interface 40 can be received by the data service trackermodule 42. In another non-limiting aspect, at least a portion of thetransaction communication can be received by way of an optionalconnection with the shared memory 34, for example, by way of aninterface that identifies or otherwise communicates read and writetransactions of the shared memory 34, or a data store 54, 56, 58thereof. In one example, the validation module 38 can be utilized foridentifying or otherwise communicating the read and write transactions,if or when the validation module 38 authorizes or validates thetransaction access. In yet another non-limiting aspect of thedisclosure, the data service tracker module 42 can optionally becommunicatively connected with both of the shared memory 34 and thenetwork interface 40, and receive transaction communication aspects fromeach.

The data service tracker module 42, in response to receiving a set oftransaction communications, can in turn build a set of data couplings ofthe communications system based on the set of transactioncommunications. The set of data couplings can identify known ordetermined couplings between a sending source and a receiving source,and can be further stored in one of the memories 44, 46 of the dataservice tracker module 42. As explained, the data source can be anoriginating requestor of a data store 36 access request, such as one ofthe set of processes 32, the shared memory 34, the validation module 38,or the like. Similarly, the receiving source can be a destination ofwhere a data store 36 access request is receiving, such as one of theset of processes 32, the shared memory 34, the validation module 38, orthe respective data store 36, itself. In this sense, the data servicetracker module 42 can build a set of data couples, a table, a database,or the like, defining a set of known or valid data access interaction.In one non-limiting example, the set of data couples can includerecording at least a transaction source and a transaction destination ofthe transaction communication.

In one non-limiting example based on an earlier-described transaction,the data service tracker module 42 can record, identify, store, orotherwise generate a data couple entry defining the first process 48 andthe first data store 54 are associated. This association can includetimestamps or timing aspects of the transaction or transactioncommunication(s) during operations of the communications system 30,including, but not limited to, that the first process's 48 access to thefirst data store 54 includes write-access, that the access is or is notvalidated by the validation module 38, whether the access or transactioncompletes successfully, the like, or a combination thereof. In anothernon-limiting example aspects of the data coupling can further includedata representative of the data coupling, access, or the like, includingbut not limited to a coupling state (e.g. active or inactive), acryptographic hashing representative of one of more data couplings or asubportion of the coupling thereof, or the like.

Similarly, in another non-limiting example based on an earlier-describedtransaction, the data service tracker module 42 can record, identify,store, or otherwise generate a data couple entry defining the secondprocess 50 and the first data store 54 are associated with read-access,that the second process 50 is associated with the first data store 54(or another data store 56, 58) by way of write-access, or the like. Inthis example, a single data coupling entry in memory 44, 46representative of an association between the first data store 54 and thesecond process 50 can include both read-access and write-accesscouplings. In another example, a unique data coupling entry in memory44, 46 can be representative of a single association between the firstdata store 54 and the second process 50, such as a first entryrepresentative of the read-access by the second process 50 and a secondentry representative of the write-access by the second process 50. Inyet another non-limiting example, a transaction communication originatedby the shared memory 34 or validation module 38, or the like, betweenthe first data store 54 to the second process 50 can further include aseparate or unique data coupling entry in memory 44, 46 of the dataservice tracker module 42, as the origination source or the destinationreceiver are opposite, compared with an access transaction originatingfor the second process 50.

Thus, aspects of the disclosure can be included wherein thecommunication system 30 includes a data service tracker module 42 thatcan generate, build, identify, log, or otherwise record a set of datacouplings based on access transactions occurring through thecommunications system 30. In this sense, non-limiting aspects of thedisclosure can be used, included, or otherwise utilized to generate orbuild a list of entities that request access, validate access, publishdata, subscribe to data, or otherwise interact with data stored in ashared memory 34. This list of entities interacting with data stored ina shared memory 34 can be further utilized to, for example, validatecommunication system operations, ensure access to the shared memory 34is operating as intended or designed, identify possible errors in accessor attempted access of shared memory components, or the like. In anothernon-limiting example, the set or list of data coupling entries canfurther be utilized to recreate or demonstrate an ordered list of sharedmemory 34 access, for example, by way of the timing aspects of the datacoupling, as described herein.

In some communication systems 30, including those in avionics systems oraircraft, it can be difficult to discern what entities, processes, orthe like, exist on or as a node of the communication system 30, and haveor lack memory access to shared memory 34. It can further be difficultto ensure or monitor shared memory 34 access during testing,prototyping, or in-situ operation of the communication system 30. Thetechnical effect of aspects of the disclosure can include providing orenabling the data service tracker module 42 to identify and record datacouplings between endpoints, as described herein. Furthermore, thetechnical effect of aspects of the disclosure can further includeoperating the data service tracker module 42 during real-time orrun-time of the communications system, building or generating the set ofdata coupling entries at the time of access with the shared memory 34.

Non-limiting aspects of the disclosure can be included wherein, forexample different data coupling entries, or different portions ofindividual data coupling entries can be stored in one or more memory 44,46 portions of the data service tracker module 42. In anothernon-limiting example, the data coupling entries can further besearchable in order to ascertain or validate programming, authorizedaccess, timing windows, or source or destination entries, by way of anyof the aforementioned recorded transaction communication aspects. In yetanother non-limiting example, a coupling between endpoints can beestablished, tracked, recorded, or the like, only after a particularoccurrence of events, such as a particular sequence of events. Forinstance, in one non-limiting example, a coupling can be tracked afterexercising an ordered tracking of a write access by the transactionsource, followed by a read access by the transaction source or thetransaction destination. Additional ordered events or sequences ofevents are envisioned to established a coupling.

FIG. 3 illustrates another communication system 130 according to anotheraspect of the present disclosure. The communication system 130 issimilar to the communication system 30; therefore, like parts will beidentified with like numerals increased by 100, with it being understoodthat the description of the like parts of the communication system 30applies to the communication system 130, unless otherwise noted. Onedifference is that the communication system 130 of FIG. 3 can includecommunication within a contained system 160, such as a single computer,operating system, node, system partition, or the like. In contrast, thecommunication system 30 included independent data network entities, asdescribed.

As shown, the communication system 130 can include the shared memory134, the set of data stores 136, 154, 156, 158, and the validationmodule 138, similar to the previously described components. Onedifference is the components 134, 136, 138, 154, 156, 158 are contained,stored within, or otherwise a subcomponent of the contained system 160,as opposed to another network node, such as the server 20. Innon-limiting examples, this can include aspects wherein the sharedmemory is only accessible within the contained system 160. Thecommunication system 130 is also shown including the set of processes132, 148, 150, 152, which, for example, can be processes 132, 148, 150,152 only utilized by the contained system 160. In non-limiting examples,aspects of the set of processes 132, 148, 150, 152, the shared memory134 (or subcomponents 136, 138, 154, 156, 158 thereof), can be operablyenabled by way of a controller module 152, as described herein, having aprocessor 154 and memory 156 for executing or otherwise operablyenabling the set of processes 132, shared memory 134 access, or a subsetthereof.

The communication system 130 further includes a data service trackermodule 142 and can further include memory, shown including a firstmemory 144 and a second memory 146. The data service tracker module 142can be optionally communicatively connected with at least one of, orboth of, the shared memory 134, the set of processes 132, or acombination or subset thereof. For instance, the set of processes 132can be operably connected with the shared memory 134 by way ofcommunication system 130 or contained system 160 mechanisms to enablecommunication, including, but not limited to, application programmableinterfaces (APIs), system calls, programming library calls, or the like,collectively defined as communication mechanisms 122. In non-limitingaspects of the disclosure, the data service tracker module 142 can beenabled or operably adapted to note, detect, view, record, track, orotherwise determine when the communication mechanisms 122 transmit,communicate, or otherwise convey shared memory 134 transactions utilizedwithin the contained system 160, as described herein. The detection isschematically illustrated by dotted loop 162, encompassing thecommunication mechanisms 122 between the set of processes 132 and theshared memory 134.

As described herein, during operation the data service tracker module142 can be adapted, configured, or operably enabled to identify, track,manage, or associate connections, communications, to data access betweenentities accessing the shared memory 134, including, but not limited tothe set of processes 132. When a communication, a request, a demand, ora transaction for accessing (e.g. either reading or writing to) theshared memory 134 is communicated by way of the communication mechanisms122, the data service tracker module 142 can receive, record, orotherwise log aspects of the transaction communication, for examplebased on the validation module 138, triggerless communication, or thelike. Aspects of the transaction communication can further includeidentifying aspects as described herein, and can further in turn, builda set of data couples based on the set of transaction communication, asdescribed herein.

Thus, aspects of the disclosure can be included wherein thecommunication system 130 includes a data service tracker module 142 thatcan generate, build, identify, log, or otherwise record a set of datacouplings based on access transactions occurring through thecommunications system 130. In this sense, non-limiting aspects of thedisclosure can be used, included, or otherwise utilized to generate orbuild a list of entities that request access, validate access, publishdata, subscribe to data, or otherwise interact with data stored in ashared memory 134. This list of entities interacting with data stored ina shared memory 134 can be further utilized to, for example, validatecommunication system operations, ensure access to the shared memory 134is operating as intended or designed, identify possible errors in accessor attempted access of shared memory components, or the like. In anothernon-limiting example, the set or list of data coupling entries canfurther be utilized to recreate or demonstrate an ordered list of sharedmemory 134 access, for example, by way of the timing aspects of the datacoupling, as described herein.

FIG. 4 illustrates a flow chart demonstrating a method 200 of a methodof determining a set of data couplings, in accordance with variousaspects described herein. The method 200 begins by receiving datatransaction communications by a data service tracker module 42, 142, at210. The method 200 continues by identifying aspects of the datacoupling, by the data service tracker module 42, 142, at 220. Asdescribed herein, the identifying of aspects of the data coupling caninclude source information, destination information, validationinformation, or the like. The method 200 then continues to recordingaspects of the data coupling in memory 44, 46, 144, 146, for example, tobuild or define a set of data couplings describing, for example,publish-subscriber data coupling pairs, authorized readers, authorizedwriters, or the like.

The sequence depicted is for illustrative purposes only and is not meantto limit the method 200 in any way as it is understood that the portionsof the method can proceed in a different logical order, additional orintervening portions can be included, or described portions of themethod can be divided into multiple portions, or described portions ofthe method can be omitted without detracting from the described method.

Many other possible aspects and configurations in addition to that shownin the above figures are contemplated by the present disclosure. Forexample, non-limiting aspects of the disclosure can be included whereinthe data service tracking module 42, 142 can be selectively enabled ordisabled, as needed. For example, the data service tracking module 42,142 can be enabled during testing, development, and the like, and canthen be disabled during production or installation of the communicationsystem 30, 130 in-situ. In another non-limiting example, the dataservice tracking module 42, 142 can be selectively enable duringregression testing, upgrade testing, or fault analysis of in-situcommunication system 30, 130, and then again disabled at a later time.

The aspects disclosed herein provide a communication system for defininga set of data couplings by a data service tracker module 42, 142. Thetechnical effect is that the above described aspects enable the definingor generation of a set of data coupling pairs, data, or the like,defining communication transactions between a first and a second entity,component, or the like. One advantage that can be realized in the aboveaspects is that the above described enable a defined set of datacoupling pairs, enabling definition and awareness of all data couplingpairs of a communication system 30, 130, developed or defined by theoperation of the communication system 30, 130, without awareness ordefined knowledge of the communication system 30, 130, or predefinedknowledge of authorized data couplings. Utilizing aspects of thedisclosure, the coupling state of the identified or defined list of datacoupling pairs can then be tracked, for example, to ensure proper orexpected operation of the data coupling pairs, including whether thecoupling state between pairs has been exercised or not exercised, datacoupling tracking, inspection of time-stamped transactions, or the like.Furthermore, these aspects can be utilized during design, prototyping,and verification of communication systems 30, 130, including comparisonof the set of data couplings with expect communications or transactioncommunications, as desired or designed.

Another advantage to aspects described herein can include solving anissue where the data couplings, are generally unknown. For example,having no knowledge of what data objects exists, less than fullknowledge of what data objects exists, partial knowledge of what dataobjects exists, or in environments where it would otherwise be difficultto obtain the knowledge of what data objects exists, incompleteknowledge of what data objects exists, or a delayed or inefficiency indetermining knowledge of what data objects exists, or having nomechanism for monitoring memory access (e.g. read or write), can lead todelays in troubleshooting, coding, developing, or fault analysis forsystem implementation. Furthermore, by developing the set of datacouplings during real-time operation of the communication system 30,130, a low-overhead and lower-effort tracking and verification of memoryaccess can be accomplished or achieved.

To the extent not already described, the different features andstructures of the various aspects can be used in combination with eachother as desired. That one feature cannot be illustrated in all of theaspects is not meant to be construed that it cannot be, but is done forbrevity of description. Thus, the various features of the differentaspects can be mixed and matched as desired to form new aspects, whetheror not the new aspects are expressly described. Combinations orpermutations of features described herein are covered by thisdisclosure.

This written description uses examples to disclose aspects of thedisclosure, including the best mode, and also to enable any personskilled in the art to practice aspects of the disclosure, includingmaking and using any devices or systems and performing any incorporatedmethods. The patentable scope of the disclosure is defined by theclaims, and can include other examples that occur to those skilled inthe art. Such other examples are intended to be within the scope of theclaims if they have structural elements that do not differ from theliteral language of the claims, or if they include equivalent structuralelements with insubstantial differences from the literal languages ofthe claims.

Further aspects of the invention are provided by the subject matter ofthe following clauses:

A data service tracker module for a communication system, comprising aninterface with a communication mechanism operable to receive transactioncommunication data between a transaction source and a transactiondestination, and a controller module, configured to receive thetransaction communication data, identify transaction communicationaspects of the transaction communication data, including at least thetransaction source and the transaction destination, and build a set ofdata couplings of the communication system, each data coupling definingthe transaction source and the transaction destination.

The data service tracker module of any preceding clause, wherein thecontroller module is further configured to identify transactioncommunication aspects by at interpreting or parsing the transactioncommunication data.

The data service tracker module of any preceding clause, wherein thecontroller module is configured to build the set of data couplingsutilizing at least a one of a network address, communication transactiondata header information, communication transaction data frameinformation, or communication transaction payload information.

The data service tracker module of any preceding clause wherein thecontroller module is further configured to identify whether thetransaction communication aspects include one of an authorizedtransaction communication or an unauthorized transaction communication.

The data service tracker module of any preceding clause, furthercomprising a second interface with a validation module configured todetermine whether the transaction communication data is an authorizedtransaction communication or an unauthorized transaction communication,and communicates the determination to the controller module.

The data service tracker module of any preceding clause wherein thecontroller module is further configured to timestamp the transactioncommunication data, and build the set of data couplings, each datacoupling further defining the timestamp of the transaction communicationdata.

The data service tracker module of any preceding clause wherein thecommunication mechanism is a network interface interconnecting a set ofa transaction sources with a set of transaction destinations.

The data service tracker module of any preceding clause wherein thecommunication mechanism is one of an application programmable interface,a system call, or a programming library call.

A communication system, comprising a shared memory defining at least onedata store, a process having access to the at least one data store byway of a communication mechanism, a data service tracker modulecommunicatively connected with the communication mechanism, andconfigured to identify access between the at least one data store andthe process, by way of the communication mechanism, and to recordtransaction communication data related to the access, including at leastan access initiator and an access type, to build a set of data couplingsbetween the shared memory and the process.

The communication system of any preceding clause, further comprising aset of processes and a set of data stores, each of the set of processeshaving access to at least of one the set of data stores, and wherein thedata service tracker module is configured to build a set of datacouplings by way of identifying and recording transaction communicationdata related to each access between the set of processes and the set ofdata stores.

The communication system of any preceding clause, wherein the accesstype can include one of read access, write access, or read and writeaccess.

The communication system of any preceding clause, further comprising avalidation module configured to enforce a predetermined access type foreach access between the at least one data store and the process.

The communication system of any preceding clause wherein the transactioncommunication data includes at least a subset of a network address,communication transaction data header information, communicationtransaction data frame information, or communication transaction payloadinformation.

The communication system of any preceding clause wherein the dataservice tracker module is configured to build the set of all datacouplings between the shared memory and the process during run-time ofthe communication system, without knowledge of predetermined datacouplings of the communication system.

The communication system of any preceding clause wherein thecommunication mechanism is one of an application programmable interface,a system call, or a programming library call.

A method of determining a set of data couplings in a communicationsystem, the method comprising receiving, in real-time, by a data servicetracker module, a transaction communication, from a communicationmechanism, the transaction communication defining access between atransaction source and a transaction destination identifying aspects ofthe transaction communication, by the data service tracker module, todefine transaction communication data defining a data coupling betweenthe transaction source and the transaction destination, and recordingthe transaction communication data defining the data coupling, by thedata service tracker module, to define a set of data couplingsauthorized for transaction communications in the communication system.

The method of any preceding clause, further comprising comparing the setof data couplings authorized for transaction communications with apredetermined set of desired data couplings authorized for transactioncommunications.

The method of any preceding clause, further comprising identifying areal-time timestamp of the transaction communication, and recording thetimestamp in the transaction communication data.

The method of any preceding clause wherein the data service trackermodule lacks knowledge of predetermined data couplings of thecommunication system, and wherein the recording the transactioncommunication data builds in real-time, the set of data couplingsauthorized for transaction communications in the communication system.

The method of any preceding clause, further comprising comparing the setof data couplings authorized for transaction communications with anexpected set of desired data couplings authorized for transactioncommunications.

What is claimed is:
 1. A data service tracker module for a communicationsystem, comprising: an interface with a communication mechanism operableto receive transaction communication data between a transaction sourceand a transaction destination; and a controller module, configured toreceive the transaction communication data, identify transactioncommunication aspects of the transaction communication data, includingat least the transaction source and the transaction destination, andbuild a set of data couplings of the communication system, each datacoupling defining the transaction source and the transactiondestination.
 2. The data service tracker module of claim 1, wherein thecontroller module is further configured to identify transactioncommunication aspects by at interpreting or parsing the transactioncommunication data.
 3. The data service tracker module of claim 2,wherein the controller module is configured to build the set of datacouplings utilizing at least a one of a network address, communicationtransaction data header information, communication transaction dataframe information, or communication transaction payload information. 4.The data service tracker module of claim 1 wherein the controller moduleis further configured to identify whether the transaction communicationaspects include one of an authorized transaction communication or anunauthorized transaction communication.
 5. The data service trackermodule of claim 4, further comprising a second interface with avalidation module configured to determine whether the transactioncommunication data is an authorized transaction communication or anunauthorized transaction communication, and communicates thedetermination to the controller module.
 6. The data service trackermodule of claim 1 wherein the controller module is further configured totimestamp the transaction communication data, and build the set of datacouplings, each data coupling further defining the timestamp of thetransaction communication data.
 7. The data service tracker module ofclaim 1 wherein the communication mechanism is a network interfaceinterconnecting a set of a transaction sources with a set of transactiondestinations.
 8. The data service tracker module of claim 1 wherein thecommunication mechanism is one of an application programmable interface,a system call, or a programming library call.
 9. A communication system,comprising: a shared memory defining at least one data store; a processhaving access to the at least one data store by way of a communicationmechanism; a data service tracker module communicatively connected withthe communication mechanism, and configured to identify access betweenthe at least one data store and the process, by way of the communicationmechanism, and to record transaction communication data related to theaccess, including at least an access initiator and an access type, tobuild a set of data couplings between the shared memory and the process.10. The communication system of claim 9, further comprising a set ofprocesses and a set of data stores, each of the set of processes havingaccess to at least of one the set of data stores, and wherein the dataservice tracker module is configured to build a set of data couplings byway of identifying and recording transaction communication data relatedto each access between the set of processes and the set of data stores.11. The communication system of claim 9, wherein the access type caninclude one of read access, write access, or read and write access. 12.The communication system of claim 11, further comprising a validationmodule configured to enforce a predetermined access type for each accessbetween the at least one data store and the process.
 13. Thecommunication system of claim 9 wherein the transaction communicationdata includes at least a subset of a network address, communicationtransaction data header information, communication transaction dataframe information, or communication transaction payload information. 14.The communication system of claim 9 wherein the data service trackermodule is configured to build the set of all data couplings between theshared memory and the process during run-time of the communicationsystem, without knowledge of predetermined data couplings of thecommunication system.
 15. The communication system of claim 9 whereinthe communication mechanism is one of an application programmableinterface, a system call, or a programming library call.
 16. A method ofdetermining a set of data couplings in a communication system, themethod comprising: receiving, in real-time, by a data service trackermodule, a transaction communication, from a communication mechanism, thetransaction communication defining access between a transaction sourceand a transaction destination; identifying aspects of the transactioncommunication, by the data service tracker module, to define transactioncommunication data defining a data coupling between the transactionsource and the transaction destination; and recording the transactioncommunication data defining the data coupling, by the data servicetracker module, to define a set of data couplings authorized fortransaction communications in the communication system.
 17. The methodof claim 16, further comprising comparing the set of data couplingsauthorized for transaction communications with a predetermined set ofdesired data couplings authorized for transaction communications. 18.The method of claim 16, further comprising identifying a real-timetimestamp of the transaction communication, and recording the timestampin the transaction communication data.
 19. The method of claim 16wherein the data service tracker module lacks knowledge of predetermineddata couplings of the communication system, and wherein the recordingthe transaction communication data builds in real-time, the set of datacouplings authorized for transaction communications in the communicationsystem.
 20. The method of claim 16, further comprising comparing the setof data couplings authorized for transaction communications with anexpected set of desired data couplings authorized for transactioncommunications.